package encheres.dao;

import org.hibernate.HibernateException;

import encheres.dao.entities.Client;

/**
 * Définit les méthodes pour manipuler en base de données les objets de type Client.
 * @author Nicolas
 *
 */
public interface IClientDAO {

    /**
     * Ajoute un client en base de données.
     * 
     * @param nouveauClient Le client à ajouter en BD.
     * @throws HibernateException Erreur lors de l'ajout du client nouveauClient.
     */
    public void creerClient(final Client nouveauClient) throws HibernateException;
    
    /**
     * Cherche un objet Client d'après ses identifiants de connexion.
     * 
     * @param login Le login du client.
     * @param mdp Le mot de passe du client.
     * @return Le client avec les identifiants login et mdp ou null si pas trouvé.
     * @throws HibernateException Erreur lor de la recherche du client en BD.
     */
    public Client findClient(final String login, final String mdp) throws HibernateException;
    
    /**
     * Cherche un objet Client d'après la clé primaire.
     * 
     * @param idClient L'identifiant en base de données du client à chercher.
     * @return Le client avec l'identifiant idClient ou null si pas trouvé.
     * @throws HibernateException Erreur lor de la recherche du client en BD.
     */
    public Client findClient(final int idClient) throws HibernateException;
}
